In an Internet Protocol (IP) network, a host communicates with another host via a router. As used herein, “IP” generically refers to all versions of the Internet Protocol. In IP terminology, a “node” is a device that implements IP, a “router” is a node that forwards IP packets not explicitly addressed to itself, and a “host” is a node that is not a router. A host may have one or multiple interfaces to a link. In IP terminology, a “link” is a communication facility or medium over which nodes can communicate at a link layer (which is the layer immediately below the IP layer), and an “interface” is a node's attachment to a link. An interface may be viewed as a network communication port. Each interface is associated with one or more IP addresses that uniquely identify that interface.
Internet Protocol Version 6 (IPv6) is a version of Internet Protocol that is slated to replace the widely used Internet Protocol Version 4 (IPv4). IPv6 resolves some of the key limitations of IPv4. For example, IPv4 utilizes a 32-bit address that was originally thought to provide an ample number of addresses to uniquely identify machines connected to the Internet. However, the explosive growth of the Internet has created a real risk of running out of IPv4 addresses. IPv6 ameliorates this concern by utilizing a 128-bit address.
IPv6 also provides other improvements over IPv4. For example, IPv6 supports “stateless address autoconfiguration,” which is a process whereby a host can automatically configure its own IPv6 address(es). Stateless address configuration can avoid the need to manually configure each host before its connection to a network, eliminate the need for a dedicated server to administer and assign addresses to hosts on the network, and facilitate renumbering of addresses for hosts on the network.
The stateless address configuration in IPv6 allows for nodes to generate “privacy addresses” as defined in RFC 3041—Privacy Extensions for Stateless Address Autoconfiguration in IPv6. This allows nodes to hide their movement within the IPv6 Internet by periodically changing their IP address. This is accomplished by generating a random Interface ID (“IID”) and associating it with the network prefix of the current access router. When a node is on a broadcast network it is necessary to validate that there is no other node using the newly generated IID. As used herein, “broadcast network” refers to a network connected to a broadcast media, such as 802.3. The process of validating that no other node is using a privacy address on a broadcast node is called Duplicate Address Detection (DAD). The process of generating and validating IIDs takes time, and nodes requesting privacy addresses are required to wait until the address is generated, validated, and finally assigned before the node can use the address. The latency introduced by this process is undesirable. What is needed is an efficient system for generating and managing IPv6 privacy addresses when on a broadcast network.